/**
 * 给定一个字符串 s ，验证 s 是否是 回文串 ，只考虑字母和数字字符，可以忽略字母的大小写。
 * 本题中，将空字符串定义为有效的 回文串 。
 */
class Solution {
    public static void main(String[] args) {
        String s = "A man, a plan, a canal: Panama";
        Solution solution = new Solution();
        boolean result = solution.isPalindrome(s);
        System.out.println(result);
    }

    public boolean isPalindrome(String s) {
        if( s.length() == 0){
            return false;
        }
        s = s.toLowerCase();
        StringBuilder sb = new StringBuilder();
        StringBuilder sb2 = new StringBuilder();
        for(int i = 0 ; i < s.length() ; i++){
            char c = s.charAt(i);
           if((c >= 'a' && c <= 'z') || (c >= '0' && c <= '9')){
               sb.append(c);
               sb2.append(c);
           }
        }
        sb2.reverse();
        String str1 = sb2.toString();
        String str2 = sb.toString();
        return str1.equals(str2);
    }
}